/*
 * GbtSsrc.h
 *
 *  Created on: 2018年4月30日
 *      Author: chuanjiang.zh@qq.com
 */

#ifndef GBTSSRC_H_
#define GBTSSRC_H_

#include "GbtType.h"


#ifdef __cplusplus
extern "C" {
#endif
///////////////////////////////////////////////////////////////////

/**
 * SDP 中 y= 行.
 * 为十进制整数字符串,表示SSRC值。格式如下:dddddddddd .
 */

#define     GBT_SSRC_LENGTH     10

typedef enum GBT_StreamID
{
    GBT_STREAM_MIN_ID = 1000,
    GBT_STREAM_MAX_ID = 9999

} GBT_StreamID;


typedef struct GBT_Ssrc
{
    int     type;
    char    domain[5];  /// 5位.
    int     stream;     /// 4位.

} GBT_Ssrc;


DLLEXPORT size_t gbtSsrcToString(const GBT_Ssrc* ssrc, char* str, size_t size);

DLLEXPORT BOOL gbtSsrcParse(GBT_Ssrc* ssrc, const char* str, size_t size);

DLLEXPORT int gbtSsrcGetType(const char* str, size_t size);

DLLEXPORT BOOL gbtSsrcMake(GBT_Ssrc* ssrc, int type, const char* unicode);

DLLEXPORT int gbtSsrcMakeStreamID();

DLLEXPORT size_t gbtSsrcFormat(int type, uint32_t ssrc, char* str, size_t size);

///////////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif


#endif /* GBTSSRC_H_ */
